home *** CD-ROM | disk | FTP | other *** search
/ Softdisk Supreme / Softdisk Supreme.iso / pc / DSK Files / 0-49 / SD015b.dsk / NUMBER TAKE-OFF.bas < prev    next >
BASIC Source File  |  2003-06-12  |  7KB  |  112 lines

  1. 10  REM ====================
  2. 15  REM =      NUMBER      =
  3. 20  REM =     TAKE-OFF     =
  4. 25  REM =  BY SANDY SMITH  =
  5. 30  REM =     BASED ON     =
  6. 35  REM =    "STRIKE 9"    =
  7. 40  REM =        IN        =
  8. 45  REM =    MORE BASIC    =
  9. 50  REM =  COMPUTER GAMES  =
  10. 55  REM ====================
  11. 100  REM TITLE PAGE
  12. 110  HOME : VTAB 2: INVERSE : FOR I = 1 TO 10: HTAB 11: PRINT  SPC( 20): PRINT : NEXT 
  13. 120  VTAB 2: HTAB 11: FOR I = 1 TO 20: PRINT "*";: NEXT 
  14. 130  FOR I = 3 TO 10: VTAB I: HTAB 11: PRINT "*";: HTAB 30: PRINT "*": NEXT 
  15. 140  VTAB 11: HTAB 11: FOR I = 1 TO 20: PRINT "*";: NEXT 
  16. 150  VTAB 4: HTAB 18: PRINT "NUMBER": HTAB 17: PRINT "TAKE-OFF": VTAB 8: HTAB 14: PRINT "BY SANDY SMITH": NORMAL 
  17. 200  REM GET ORGANIZED FOR PLAY
  18. 210 G$ =  CHR$(7)
  19. 220  VTAB 18: CALL  -868: HTAB 5: INPUT "DO YOU WANT INSTRUCTIONS? (Y/N) ";Q$: IF Q$ = "N"  THEN 250
  20. 230  IF Q$ < >"Y"  THEN  PRINT G$: GOTO 220
  21. 240  GOSUB 1510: REM INSTRUCTIONS
  22. 250  HOME : VTAB 10: INPUT "WHAT IS YOUR NAME? ";P$
  23. 260  VTAB 14: CALL  -868: INPUT "PLAY TO WHAT SCORE? (100-500) ";TP$:TP =  VAL(TP$): IF TP <100  OR TP >500  THEN  PRINT G$: GOTO 260
  24. 270 P = 0:C = 0:SC = 0:SP = 0: FOR I = 1 TO 9:CN(I) = I:PN(I) = I: NEXT :A =  PEEK(78):A = A +1: FOR I = 1 TO A: POKE 202,A:NR =  RND(1): NEXT : GOSUB 1010: GOSUB 1310: GOSUB 1410
  25. 300  REM PLAYER'S TURN
  26. 310  POKE  -16368,0: GOSUB 1310: VTAB 18: CALL  -958: INPUT "HOW MANY NUMBERS WILL YOU TAKE OFF? ";N$: IF  LEN(N$) = 0  THEN 310
  27. 320 N =  VAL(N$): IF N = 0  THEN 560
  28. 330  IF N <5  THEN 350
  29. 340  PRINT : PRINT "C'MON NOW, ";P$;"!";G$: PRINT "WHO ARE YOU TRYING TO KID!": GOSUB 1200: GOTO 310
  30. 350  FOR I = 1 TO N
  31. 360  VTAB 19 +I: HTAB 12: INPUT "WHICH ONE? ";NB$: IF  LEN(NB$) = 0  THEN 360
  32. 370 NB(I) =  VAL(NB$): IF NB(I) <1  OR NB(I) >9  THEN  PRINT "THAT NUMBER IS NOT ON THE BOARD!";G$: GOSUB 1200: GOTO 310
  33. 380  IF PN(NB(I)) = 0  THEN  PRINT "YOU ALREADY TOOK THAT ONE!";G$: GOSUB 1200: GOTO 310
  34. 390  NEXT 
  35. 400  FOR I = 1 TO N:PT = PT +NB(I):PN(NB(I)) = 0: NEXT : IF PT = TD  THEN 420
  36. 410  GOTO 1610
  37. 420  IF N = 2  OR N = 3  OR N = 4  THEN 460
  38. 430  IF N = 3  OR N = 4  THEN 480
  39. 440  IF N = 4  THEN 510
  40. 450  GOTO 530
  41. 460  IF NB(1) = NB(2)  THEN 1610
  42. 470  GOTO 530
  43. 480  IF NB(1) = NB(3)  THEN 1610
  44. 490  IF NB(2) = NB(3)  THEN 1610
  45. 500  GOTO 530
  46. 510  IF NB(1) = NB(4)  THEN 1610
  47. 520  IF NB(3) = NB(4)  THEN 1610
  48. 530  FOR I = 1 TO N: VTAB 2: HTAB 10 +2 *NB(I): PRINT " ";: VTAB 4: HTAB 10 +2 *NB(I): PRINT "*": NEXT 
  49. 540 P = P +PT: VTAB 9: HTAB 5: PRINT P:PT = 0:SP = SP +TD: IF SP < >45  THEN  GOSUB 1410: GOTO 310
  50. 550  VTAB 23: HTAB 5: PRINT "OH, OH!  YOU GOT THEM ALL!!!": GOSUB 1200
  51. 560  VTAB 16: CALL  -868: GOSUB 1110: GOSUB 1320: GOSUB 1420
  52. 600  REM COMPUTER'S TURN
  53. 610  GOSUB 1320: IF CN(2) = TD  THEN  VTAB 18: PRINT "I WILL TAKE NUMBER 2":CN(2) = 0: VTAB 2: HTAB 14: PRINT " ": VTAB 4: HTAB 14: PRINT "*": GOTO 820
  54. 620  FOR I = 0 TO 2: FOR J = 0 TO 6: FOR K = 9 TO 0  STEP  -1
  55. 630  IF J = 0  AND I = 0  THEN 650
  56. 640  IF I = J  OR I = K  OR J = K  THEN 660
  57. 650  IF CN(I) +CN(J) +CN(K) = TD  THEN 720
  58. 660  NEXT : NEXT : NEXT 
  59. 670  FOR I = 4 TO 6: IF CN(I) +CN(3) +CN(2) +CN(1) = TD  AND CN(1) = 1  AND CN(2) = 2  AND CN(2) = 3  THEN 690
  60. 680  NEXT : VTAB 18: HTAB 7: PRINT "I CAN'T TAKE ANY OFF, RATS!!": GOTO 910
  61. 690  VTAB 18: PRINT "I WILL TAKE NUMBERS ";I;",3,2, AND 1":CN(I) = 0:CN(3) = 0:CN(2) = 0:CN(1) = 0
  62. 700  VTAB 2: HTAB 10 +2 *I: PRINT " ": VTAB 4: HTAB 10 +2 *I: PRINT "*"
  63. 710  FOR I = 1 TO 3: VTAB 2: HTAB 10 +2 *I: PRINT " ": VTAB 4: HTAB 10 +2 *I: PRINT "*": NEXT : GOTO 820
  64. 720  VTAB 18: PRINT "I WILL TAKE NUMBER ";: IF K >0  THEN  PRINT K;
  65. 730  IF J >0  THEN  PRINT " AND ";J;
  66. 740  IF I >0  THEN  PRINT " AND ";I;
  67. 750  PRINT :CN(K) = 0:CN(J) = 0:CN(I) = 0
  68. 760  VTAB 2: HTAB 10 +2 *K: IF K >0  THEN  PRINT " "
  69. 770  VTAB 2: HTAB 10 +2 *J: IF J >0  THEN  PRINT " "
  70. 780  VTAB 2: HTAB 10 +2 *I: IF I >0  THEN  PRINT " "
  71. 790  VTAB 4: HTAB 10 +K *2: IF K >0  THEN  PRINT "*";
  72. 800  HTAB 10 +J *2: IF J >0  THEN  PRINT "*";
  73. 810  HTAB 10 +I *2: IF I >0  THEN  PRINT "*"
  74. 820 C = C +TD: VTAB 9: HTAB 35: PRINT C: GOSUB 1200: VTAB 17: CALL  -958:SC = SC +TD: IF SC < >45  THEN  GOSUB 1420: GOTO 610
  75. 830  VTAB 18: HTAB 8: PRINT "HA-HA!! I GOT THEM ALL!!!"
  76. 900  REM CHECK FOR WINNER
  77. 910  IF P =  >TP  AND P >C  THEN  VTAB 20: HTAB 16: FLASH : PRINT "YOU WIN!!!";G$;G$;G$: NORMAL : GOTO 940
  78. 920  IF C =  >TP  AND C >P  THEN  VTAB 20: HTAB 16: FLASH : PRINT "I WIN!!!";G$;G$;G$: NORMAL : GOTO 940
  79. 930  GOSUB 1200:SC = 0:SP = 0: FOR I = 0 TO 9:CN(I) = I:PN(I) = I: NEXT : GOSUB 1110: GOSUB 1310: GOSUB 1410: GOTO 310
  80. 940  PRINT : HTAB 10: INPUT "ANOTHER GAME? (Y/N) ";Q$: IF Q$ = "Y"  THEN  HOME : GOTO 260
  81. 950  IF Q$ < >"N"  THEN 940
  82. 960  HOME : END 
  83. 1000  REM SET UP SCREEN
  84. 1010  HOME : INVERSE : FOR I = 10 TO 30: HTAB I: PRINT "=";: NEXT 
  85. 1020  VTAB 2: HTAB 11: PRINT " 1 2 3 4 5 6 7 8 9 "
  86. 1030  FOR I = 10 TO 30: HTAB I: PRINT "-";: NEXT 
  87. 1040  FOR I = 8 TO 12  STEP 4: VTAB I: HTAB 13: PRINT "-----";: HTAB 23: PRINT "-----";: NEXT 
  88. 1050  FOR I = 9 TO 11: VTAB I: HTAB 13: PRINT "!   !";: HTAB 23: PRINT "!   !";: NEXT 
  89. 1060  FOR I = 2 TO 14: VTAB I: HTAB 10: PRINT "!";: HTAB 30: PRINT "!";: NEXT 
  90. 1070  FOR I = 10 TO 30: VTAB 14: HTAB I: PRINT "=";: NEXT 
  91. 1080  VTAB 6: HTAB 3: PRINT  LEFT$(P$,5);: HTAB 33: PRINT "APPLE": HTAB 3: PRINT "=====";: HTAB 33: PRINT "====="
  92. 1090  NORMAL : RETURN 
  93. 1100  REM RE-DO SCREEN
  94. 1110  VTAB 17: CALL  -958: VTAB 2: HTAB 11: INVERSE : PRINT " 1 2 3 4 5 6 7 8 9 ": NORMAL : VTAB 4: HTAB 12: PRINT "                 ": RETURN 
  95. 1200  FOR D = 1 TO 4000: NEXT : RETURN : REM DELAY LOOP 
  96. 1300  REM TELL WHOSE TURN IT IS
  97. 1310  VTAB 16: HTAB 12: INVERSE : PRINT "IT'S YOUR TURN...": NORMAL : RETURN 
  98. 1320  VTAB 16: HTAB 13: INVERSE : PRINT "IT'S MY TURN...": NORMAL : RETURN 
  99. 1400  REM  ROLL DICE
  100. 1410  VTAB 18: CALL  -958: VTAB 23: HTAB 8: PRINT "<<PRESS KEY TO END ROLL>>"
  101. 1420  POKE  -16368,0: FOR I = 1 TO 200 + INT( RND(1) *100):D1 =  INT( RND(1) *6) +1:D2 =  INT( RND(1) *6) +1: VTAB 10: HTAB 15: INVERSE : PRINT D1;: HTAB 25: PRINT D2: NORMAL : IF  PEEK( -16384) >127  THEN 1440
  102. 1430  NEXT 
  103. 1440 TD = D1 +D2: POKE  -16368,0: RETURN 
  104. 1500  REM  INSTRUCTIONS
  105. 1510  HOME : PRINT "INSTRUCTIONS:": PRINT : PRINT "THE OJECT OF THIS GAME IS TO TAKE OFF": PRINT "AS MANY OF THE NUMBERS ON THE BOARD AS": PRINT "POSSIBLE."
  106. 1520  PRINT : PRINT "WITH EACH ROLL OF THE DICE YOU CAN": PRINT "REMOVE ANY OF THE NUMBERS THAT ADD UP": PRINT "TO YOUR DICE ROLL."
  107. 1530  PRINT : PRINT "FOR EXAMPLE: IF THE NUMBERS ON THE DICE": PRINT "ARE 3 AND 2, YOU COULD REMOVE EITHER": PRINT "THE 5 OR THE 3 AND 2 OR THE 4 AND 1."
  108. 1540  PRINT : PRINT "YOUR TURN WILL CONTINUE UNTIL YOU CANNOT";: PRINT "REMOVE ANY MORE NUMBERS. THEN IT WILL BE";: PRINT "THE COMPUTER'S TURN."
  109. 1550  PRINT : PRINT "YOU CAN HELP THE COMPUTER BY PRESSING A KEY TO STOP THE DICE ROLL, BUT YOU DON'THAVE TO."
  110. 1560  VTAB 23: HTAB 12: INVERSE : PRINT "<<PRESS ANY KEY>>": NORMAL : WAIT  -16384,128: POKE  -16368,0: RETURN 
  111. 1600  REM CHEATING!
  112. 1610  HTAB 8: FLASH : PRINT "YOU'RE CHEATING!!";: NORMAL : PRINT G$;G$;G$;G$;G$;G$;"  I QUIT!!": END